/***********************************
 *  string.h					   *
 ***********************************/

#ifndef STRING_H_
#define STRING_H_


/* Invierte una cadena. Se devuelve en el retorno y en el parametro.*/
char * reverse(char *str);


/* Copia los n primeros caracteres desde src a dest.*/
char * strncpy(char * dest, const char * src, unsigned int n);


/* Función que copia un string a otro, desde src a dest.*/
char *strcpy(char * dest, char * src);


/* Compara dos cadenas. Devuelve 0 si son iguales, 1 si la primera es mayor a
 * la segunda y -1 si la segunda es mayor a la primera.*/
int strcmp(char *str1, char *str2);


/* Compara los n primeros chars de dos cadenas. Devuelve 0 si son iguales, 1 si
 * la primera es mayor a la segunda y -1 si la segunda es mayor a la
 * primera.*/
int strncmp(const char * s1, const char * s2, unsigned int n);


/* Devuelve la longitud de una cadena.*/
int strlen(char *str);


/* strchr() retorna un puntero a la primera ocurrencia del caracter c en la
 * cadena s.*/
char * strchr(char * s, int c);


/* Copia los n primeros bytes de src a dest.*/
void * memcpy(void * dest, const void * src, unsigned int n);


/* Setea los primeros n words (16 bits c/word) de la zona de memoria apuntada
 * por s, con c. Util para incializar zonas de video.*/
void * memsetw(void * s, int c, unsigned int n);


/* Setea con c, los primeros n bytes de la zona de memoria apuntada por s.*/
void * memset(void * s, int c, unsigned int n);


/* Compara los n primeros bytes de s1 y s2.*/
int memcmp(const void *s1, const void *s2, int n);


/* Convierte un numero a una cadena de caracteres.*/
void intToString(char *buf, int num);


/* Convierte una cadena a entero. Retorna el entero obtenido.*/
int stringToInt(char *buf);

#endif /* STRING_H_ */
